#include <stdio.h>
#include <stdlib.h>
int count = 0;
int n, m;
char arr[105][105];

int dfs(int i, int j)
{
	int count = 0;
	// 通过两个嵌套的 for 循环，遍历了以位置 (i, j) 为中心的九个相邻位置。
	// 这些相邻位置的坐标分别为 (x, y)，其中 x 的取值范围是 i-1 到 i+1，y 的取值范围是 j-1 到 j+1。
	for (int x = i - 1; x <= i + 1; x++)
	{
		for (int y = j - 1; y <= j + 1; y++)
		{
			if (arr[x][y] == '*')
			{
				count++;
			}
		}
	}
	return count;
}
int main(int argc, char *argv[])
{
	scanf("%d%d", &n, &m);
	for (int i = 0; i < n; i++)
	{
		scanf("%s", arr[i]);
	}
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			if (arr[i][j] == '?')
			{
				printf("%d", dfs(i, j));
			}
			else
				printf("%c", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}